五、PLC串接MQTT推播
手機-故障叫修
成員:黃豊益
指導老師:卓柏洲
專題目的
控制除了要智慧,因應時代需求也開始需
接上雲端,龐大的原始數據應當有更具意
的發揮,此專題主要目的是讓控制真正的
入網控,並將蒐集的數據用於更有實質幫
的企業分析,除了提升設備穩定性,也後
追蹤的效率。
功能簡述
使用PLC結合Mqtt,對場域設備做電源品質監
控、溫度監控
提供人機介面方便人員監看
當設備異常時,將及時發出故障叫通知,
該訊息會透過Line Notify發給管理員。
蒐集監控數據,使用Power BI來分析數據。
目錄:
專題引用
專題的工具
專題的演算
專題運作內容功能主述
專題結論
專題引用
PLC引用課程資料,書籍。
RTU多功能電錶參閱手冊。
C#桌面端程式引用開源Library:
NModbus4MQTTnet
專題的工具(1)
PLC
RTU多功能電錶 : Slave設備。
485-ADP : PLC作為Master,與多個Slave設備通信。
3A-ADP : 用於ADV模擬輸(電壓)控制。
專題的工具(2)
IO實習模組
使用旋鈕來輸出0v~5v的電壓,用於模擬溫度變化。
藉由溫度來影響繼電器(控制排風扇)輸出。
使用了一些按鈕,燈號
專題的工具(3)
PC
撰寫桌面端程式(左圖),來接收PLC的監控數據。
桌面端程式除了接收監控數據,並將數據整理JSON格式,並發
Mqtt Brocker
DatabaseCPC建置,監控數據也會寫入資料庫。
台達人機介面(右圖),方便人員監看。
專題的工具(4)
Mobile Phone(Android)
Line : 用於接收Line notify通知訊息。
Iot Mqtt Panel : 將蒐集的監控資料,即時呈現多種圖表。
專題的演算
MQTT
Modbus(master) -> Modbus(slave) via COM port.
模擬溫度、故障按
鈕、繼電器
Modbus(slave)
IO實習模組 電錶
PLCHMI PC
Mobile
Database
專題運作內容功能主述(1)
PLC部分:
撰寫實體按鈕、燈號、繼電器的程式。
485-ADP :撰寫Modbus(Master)的接收、發送
程式。
接收電錶的資料,依照電錶手冊說明,將相
應位址的資料取出。
3A-ADP : 模擬偵測的溫度值。
結合上述資料,自行定義一連續暫存器位址,
即可發送給PC
專題運作內容功能主述(2)
PC部分:
撰寫桌面端程式:
實作Modbus(Slave),藉由RTU->COM來與
PLC通信。
實作Mqtt-Client,自訂一組收發用的topic
用來收發JSON資料。
藉由PLC傳來的資料來判斷設備上的"故障
叫修"按鈕是否按下,若按下會發出當下該
設備的所有狀態資料至Line Notify
專題運作內容功能主述(3)
人機介面部分:
部分人機介面用圖從選項-圖形庫匯入
輸入框讓操作者自己輸入數字,調整繼電器設定
專題運作內容功能主述(4)
Mobile部分:
使用Iot Mqtt Panel App
藉由該App,只需要定義好發送出的JSON格式
資料,即可輕易的構建出人性化圖表。
{"deviceId":1,
"electricMeter":{
"volt":118,
"ampere":0,
"hertz":59},
"tempeControl":{
"temperature":47,
"relayState":false},
"callOut":false,
"timeLocalStr":"2023/02/13-01:59:46",
"timestamp":1676049093}
專題運作內容功能主述(5)
Power BI部分:
撰寫的桌面程式持續收集資料,會將資料寫入
資料庫,再經由Power BI來做大數據分析,可
以很快速的實現"可視化"分析結果。
link
專題結論
經由參加課程,讓我認識到工控方面的許多知識,
專題中最棘手的問題是如何轉接出PLC的資料到網路
上,經由課程學習,請教老師後,得出了一個可行
辦法,隨後我就進入C#桌面程式的撰寫,實作
Modbus通訊協定、Mqtt-Client、資料寫入資料庫,
設計界面,也因為我有行動App的開發背景,這一
切滿順利的,收穫最大的是Modbus通訊協定,以及
如何把收集的資料於PowerBI做分析。